import ILocalStorage from "../db/ILocalStorage";
import { DeviceModel, DeviceType, PlatformType } from "./PlatformType";

/**平台适配接口 */
export interface IPlatform extends ILocalStorage {

    readonly platType: PlatformType;

    readonly deviceType: DeviceType;

    readonly deviceModel: DeviceModel;

    /**
     * 平台游戏ID
     */
    readonly appId: string;

    /**获取sdk版本 */
    getVersion(): string;

    /**拉取充值 */
    pay(payinfo: any): Promise<any>;

    /**登录 */
    login(): Promise<{ code: number, data: any }>;

    /**
     * 切换后台
     * @param cb 
     */
    onHide(cb: Function): void;

    /**
     * 切换前台
     * @param cb 
     */
    onShow(cb: Function): void;

    /**
     * 显示广告
     * @param param 
     */
    showAd(param: string): Promise<number>;

    /**
     * 分享
     * @param param 分享参数
     */
    shareApp(param: any): void;

    /**
     * 存储
     * @param key 
     * @param v 
     */
    setItem(key: string, v: any): void;

    /**
     * 本地内存取
     * @param key 
     */
    getItem(key: string): any;

    /**
     * 删除
     * @param key 
     */
    deleteItem(key: string): void;

    /**
     * 获取网络状态
     * @param call 
     */
    getNetworkType(call?: (type: string) => void): void;


    /**
     * 短震动
     */
    vibrateShort(): void;

    /**
     * 长震动
     */
    vibrateLong(): void;


    /**退出游戏 */
    exit(): void;

}